from django.contrib import admin

from malina_admin.models import Ip
from datetime import datetime
from django import forms

from malina_admin.utils import set_new_ip

#настройка заголовков
admin.site.site_header = "Администрирование Raspbery PI"
admin.site.site_title = "Панель администрирования"
admin.site.index_title = "Добро пожаловать в админку"


# admin.site.register(Ip) #нет такой таблички!
class IPForm(forms.ModelForm):
    class Meta:
        model = Ip
        fields = ("ip",)


@admin.register(Ip)
class IpAdmin(admin.ModelAdmin):
    list_display = ["ip"]

    def save_model(self, request, obj, form, change):
        """здесь сохранем модель и здесь же вызываем метод смены ip"""
        obj.updatetime = datetime.now()
        set_new_ip(obj.ip)
        super().save_model(request, obj, form, change)

    def save_formset(self, request, form, formset, change):
        pass

    # нужно еще предзаполнить ip, если он пуст
    def changelist_view(self, request, extra_context=None):
        # кароч, тут надо зарендерить свою форму и менять в ней ip!
        return super().changelist_view(request)

    def changeform_view(self, request, object_id=None, form_url='', extra_context=None):
        """изменяем вид формы редактирования"""
        extra_context = extra_context or {}

        extra_context['show_save_and_continue'] = False

        return super().changeform_view(request, object_id, form_url, extra_context)

    def has_add_permission(self, request, obj=None):  # прячем кнопку добавления
        return False
